from typing import Iterable
import abc
import numpy as np


class Dataset(abc.ABC):

    def mode(self, mode: str) -> str:
        raise NotImplemented

    def sample(self) -> None:
        raise NotImplemented

    def __len__(self) -> int:
        raise NotImplemented

    def __getitem__(self, index: int) -> Iterable[np.ndarray]:
        raise NotImplemented

    def __iter__(self) -> Iterable[np.ndarray]:
        raise NotImplemented
